package com.csun.cmny.provider.dao;

import com.csun.cmny.provider.device.csun.camera.entity.CsunCameraData;
import com.csun.cmny.provider.model.domain.DmcCsunCameraLocation;
import com.csun.cmny.provider.model.dto.camera.CsunCameraQueryDto;
import com.csun.cmny.provider.model.vo.CameraReqVo;
import com.csun.cmny.provider.model.dto.propertyManagement.SelectDeviceDataDto;
import com.csun.cmny.provider.model.vo.csuncamera.CsunCameraVo;
import com.csun.cmny.provider.model.vo.life.DmcDeviceByRoom;
import com.csun.cmny.provider.model.vo.propertyManagement.PropertyDataVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

public interface DmcCsunCameraLocationMapper extends Mapper<DmcCsunCameraLocation> {

    /**
     * query dmc csun camera list with page
     *
     * @param csunCameraQueryDto the csun camera query dto
     *
     * @return the list.
     */
    List<CsunCameraVo> queryListWithPage(CsunCameraQueryDto csunCameraQueryDto);

    /**
     *
     * @param roomId
     * @return the list
     */
    List<Long> selectDeviceIdByRoomId(Long roomId);

    /**\
     *
     * @param
     * @param alertId
     * @return
     */
    DmcDeviceByRoom selectRoomIdByDeviceId(Long alertId);

    /**
     * query csun camera bind list
     *
     * @return the csun camera data list
     */
    List<CsunCameraData> queryCsunCameraBindList();

    /**
     * 根据房间Id查询摄像头数据
     *
     * @param roomIdList the room id list
     *
     * @return the camera req vo list
     */
    List<CameraReqVo> queryCameraByRoomIds(@Param("roomIdList") List<Integer> roomIdList);

    List<PropertyDataVo> selectDeviceData(SelectDeviceDataDto selectDeviceDataDto);
}